using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("CameraShakeMgr")]
	public class CameraShakeMgr : MonoBehaviour
	{
		public Vector3 m_amount => method_2<Vector3>("m_amount");

		public bool m_started => method_2<bool>("m_started");

		public Vector3 m_initialPos => method_2<Vector3>("m_initialPos");

		public float m_progressSec => method_2<float>("m_progressSec");

		public float m_durationSec => method_2<float>("m_durationSec");

		public CameraShakeMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CameraShakeMgr(IntPtr address)
			: this(address, "CameraShakeMgr")
		{
		}

		public static void Shake(Camera camera, Vector3 amount, float time)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "CameraShakeMgr", "Shake", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4
			}, camera, amount, time);
		}

		public static void Stop(Camera camera, float time)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "CameraShakeMgr", "Stop", camera, time);
		}

		public static bool IsShaking(Camera camera)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "CameraShakeMgr", "IsShaking", new object[1] { camera });
		}

		public void Update()
		{
			method_8("Update");
		}

		public void DestroyShake()
		{
			method_8("DestroyShake");
		}

		public void UpdateShake()
		{
			method_8("UpdateShake");
		}

		public float ComputeIntensity()
		{
			return method_11<float>("ComputeIntensity", Array.Empty<object>());
		}

		public bool IsHolding()
		{
			return method_11<bool>("IsHolding", Array.Empty<object>());
		}
	}
}
